package com.czx.drivingtest.service;

import com.czx.drivingtest.model.entity.Statistics;
import com.czx.drivingtest.model.entity.UserArchive;
import com.czx.drivingtest.model.entity.UserQuestion;

import java.util.List;

/**
 * 用户与题目关系业务
 * @author czx
 * @version 2021/2/1 12:22 下午
 */
public interface UserQuestionService {
    /**
     * 获取用户的存档信息
     * @param userId
     * @param subject 科目
     * @return
     */
    UserArchive getUserArchive(long userId, Integer subject);

    /**
     * 修改用户存档信息
     * @param userArchive
     */
    void updateUserArchive(UserArchive userArchive);

    /**
     * 用户完成一道题
     * @param userId
     * @param status 1答错 2答对
     * @param questionId
     * @param wasInOrder 是否为顺序练习
     */
    void completeQuestion(long userId, Integer status, Integer questionId, boolean wasInOrder);

    /**
     * 获取用户和题目的关系列表
     * @param userId
     * @param subject
     * @return
     */
    List<UserQuestion> listUserQuestions(long userId, Integer subject);

    /**
     * 获取用户的错题
     * @param userId
     * @return
     */
    List<UserQuestion> getWrongQuestions(long userId, Integer subject);

    /**
     * 交卷, 记录分数
     * @param trueCount
     */
    void handPaper(int trueCount, int subject);

    /**
     * 获取用户的考试统计
     * @param userId
     * @param subject
     * @return
     */
    Statistics getStatistics(long userId, int subject);
}
